package net.begincode.blog.dao.biz;


import net.begincode.blog.bean.param.BlogQueryParam;
import net.begincode.blog.bean.vo.BlogBaseInfo;
import net.begincode.blog.bean.vo.CheckBlog;
import net.begincode.blog.dao.BlogMapper;
import net.begincode.blog.entity.Blog;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BlogBizMapper extends BlogMapper {

    /**
     * 条件查询条数
     * @param queryParam
     * @return
     */
    int countByParam(@Param("queryParam") BlogQueryParam queryParam);

    /**
     * 条件分页查询
     * @param queryParam
     * @param offSet
     * @param limit
     * @return
     */
    List<CheckBlog> selectByParam(@Param("queryParam") BlogQueryParam queryParam
            , @Param("offSet") int offSet, @Param("limit") int limit);

    /**
     * 批量查询
     * @param blogIds
     * @param flag
     * @return
     */
    List<BlogBaseInfo> selectByIds(@Param("blogIds") List<Long> blogIds, @Param("flag") String flag);

    /**
     * 查询博文
     * @param blogId
     * @param flag
     * @return
     */
    Blog selectById(@Param("blogId") Long blogId, @Param("flag") String flag);

    int countClassify(@Param("homeTypeId") Long homeTypeId, @Param("keyWordId") Long keyWordId);

    /**
     * 分类查询博文
     * @param homeTypeId
     * @param keyWordId
     * @param offset
     * @param limit
     * @return
     */
    List<Blog> selectClassify(@Param("homeTypeId") Long homeTypeId, @Param("keyWordId") Long keyWordId,
                              @Param("offset") int offset, @Param("limit") int limit);

    /**
     * 查询浏览次数TOPN
     * @param flag
     * @param limit
     * @return
     */
    List<Blog> selectTopN(@Param("flag") String flag,@Param("limit") Integer limit);

    /**
     * 查询最后N条博文
     * @param flag
     * @param limit
     * @return
     */
    List<Blog> selectLastBlog(@Param("flag") String flag,@Param("limit") Integer limit);
}